---
sidebar_position: 7
---

import "@site/src/languages/highlight";

# 如何打包游戏为独立的应用

&emsp;&emsp;本教程将指导您如何使用 Dora SSR 游戏引擎将游戏项目打包为独立运行的软件包，使其不依赖于 Dora SSR 的开发辅助工具界面及 Web IDE 功能。

### 1. 准备游戏资源

&emsp;&emsp;在打包之前，首先确保所有游戏资源都已经正确放置在游戏项目的 `Assets` 目录下。这包括：

- **美术资源**：如图像、动画等。
- **音频文件**：包括音乐和音效。
- **字体文件**：游戏中使用的所有字体。
- **程序脚本**：包括 Lua、Yuescript、Teal 、TS 等脚本或是 WASM 二进制程序文件。

&emsp;&emsp;这些资源是游戏运行的必要组成部分，需要被包含在最终的应用包中。

### 2. 精简 Assets 目录

&emsp;&emsp;在 `Assets` 目录下，`Script/Lib` 子目录包含了 Dora SSR 引擎提供的开发辅助功能脚本和组件库，这些是必须保留的，因为它们可能会被游戏程序引用。除此之外的其他目录和内容，在不影响游戏运行的前提下，可以考虑都进行删除，以减少最终应用包的大小。

### 3. 设置资源搜索路径

&emsp;&emsp;在使用 Dora SSR 的 Web IDE 进行游戏的开发和测试时，引擎默认会在运行前往资源搜索路径中插入以下几个路径：

1. **游戏项目根目录/Script**
2. **游戏项目根目录**
3. **引擎内置资源根目录/Script/Lib**
4. **引擎内置资源根目录/Script/Lib/Dora/zh-Hans**

&emsp;&emsp;为了确保自己独立打包游戏的资源搜索路径保持一致，你可能会需要在入口程序的脚本代码的最开头插入以下的代码，以确保获得一致的脚本模块的加载顺序。以 Lua 语言做程序入口（init 文件）的脚本为例：

```lua title="init.lua"
local Path <const> = require("Path")
local Content <const> = require("Content")

local currentScriptPath = Path:getScriptPath(...)
Content.searchPaths = {
	Path(currentScriptPath, "Script"),
	Path(currentScriptPath),
	Path(Content.assetPath, "Script", "Lib"),
	Path(Content.assetPath, "Script", "Lib", "Dora", "zh-Hans")
}
```

### 4. 构建和打包流程

&emsp;&emsp;打包过程主要涉及以下几个步骤：

#### a. 配置打包设置
&emsp;&emsp;请通过目标平台的应用开发IDE（如 Xcode、Android Studio 或 Visual Studio）找到配置项，包括应用名称、图标、版本号、包体名、应用签名等。根据您的项目需求，按需进行更改。这些配置项对于应用的识别和发布至各大应用商店至关重要。

#### b. 构建项目
&emsp;&emsp;使用目标平台的应用开发IDE（如 Xcode、Android Studio 或 Visual Studio）来构建项目。通常在构建时正确的编译器选项只用沿用 Dora SSR 引擎预设好的默认参数即可，如果有更多对应用的优化需求，可以自行再做调整和修改。构建项目的流程请参见[这个教程](/docs/tutorial/dev-configuration)。

#### c. 打包应用
&emsp;&emsp;构建完成后，将生成的可执行文件和所有必要的资源文件一起打包。这可能包括将文件压缩为.zip文件或通过应用开发 IDE 自动创建安装包程序。

#### d. 测试应用
&emsp;&emsp;在目标平台上测试打包好的应用，确保所有功能正常工作，没有遗漏或错误的资源。

### 5. 分发和发布

&emsp;&emsp;打包和测试完成后，您的游戏应用就已准备好进行分发和发布了。您可以选择发布到各类游戏平台，或者自行设立下载站点供玩家下载。

&emsp;&emsp;通过遵循这些步骤，您可以确保您的游戏项目能够顺利转变为一个独立的游戏应用，不受 Dora SSR 提供的开发环境工具的束缚，为玩家提供流畅和稳定的游戏体验。
